1. Technical Field
The present invention relates in general to devices having combined routing and switching functions in computer networks, and in particular to such devices in local area network and wide area network environments. Still more particularly, the present invention relates to improving performance of high speed networking devices by enabling simultaneous transmission of frames by both cut-through and store-and-forward techniques.
2. Background Art
Computer networks are classified by their geographic scope. The most commonly used terms for classifying computer networks are local area network (LAN) and wide area network (WAN). LANs are generally limited to computers within a relatively small area, such as a building, office or campus. WANs, on the other hand, connect computers over larger geographic scopes, such as from one city to another.
Various technologies have evolved for communications and/or data transmission in computer networks, including Ethernet, high speed Ethernet, token ring, fiber distributed data interface (FDDI), and asynchronous transfer mode (ATM). Data transmission within and between networks using such technologies are governed by various protocols, such as frame relay, X.25, Integrated Services Digital Network (ISDN), media access control (MAC) address protocol, and transmission convergence protocol/internet protocol (TCP/IP).
As with other forms of digital communications, data in computer networks is commonly transmitted in packets or frames, i.e., discrete bundles of data. Frames are comprised of various fields, such as header, address, data and control fields. The arrangement or format of these fields within a frame is protocol-dependent. An explanation of some frame formats commonly used in computer networks may be found in Internet Engineering Task Force (IETF) Request for Comments (RFC) 1490, which is incorporated herein by reference. However, it will be understood by those skilled in the art that RFC 1490 is not exhaustive of all frame formats currently in use.
A given communications or data transmission process in a network often requires delivery of multiple packets or frames of data from a source to a destination within the network. For example, retrieval of a file using file transfer protocol (FTP) will generally be accomplished using a large number of frames. Although relating to the same process, different frames may be transmitted via different paths within the network. As used herein, a data flow refers to a sequence of related frames sent from a particular source to a particular destination within the network.
Various devices exist for transmitting packets or frames of data within a network or between networks. A bridge or gateway--the terms are often used interchangeably--passes frames of data from one network to another, the two networks typically being local area networks. Bridges store-and-forward frames of data, looking only at the low-level addressing and not at the frame's internal data to determine where the frames are sent. In the store-and-forward mode, each data frame is fully received and stored or buffered in the device. The frame is then checked for errors before being forwarded to the destination output port. If the data frame contains an error, the frame is discarded. The disadvantage of this technique is that it increases the delay from the time a source node transmits the data to the time the data is received by a destination node.
Routers are an evolution beyond bridges, usually routing frames of data at a higher level protocol than is handled by bridges. The oldest routers were internet protocol (IP) routers, but other protocols may be routed including InterPacketExchange (IPX) by Novell, Inc., and high performance routing (HPR) by International Business Machines Corporation. Like bridges, routers store-and-forward frames. However, a router, after storing a frame of data, looks into the internal data of the frame for higher protocol information regarding the ultimate destination of the frame. A router then consults an internal table of available paths to the ultimate destination and corresponding protocols supported by those paths, and makes a decision regarding how to route the frame to its ultimate destination.
A switch is a hardware device providing physical connection within or between different networks. Unlike bridges and routers, a switch typically forwards data without first storing the entire frame. The delays inherent in storing the entire frame before forwarding are thus eliminated. A switch transmits the data bits of the frame received from the source port directly to the destination port as soon as the destination port is ascertained.
To improve high-demand, high-bandwidth data delivery, the network industry is attempting to overcome latency (delay) in routers by going to switching technologies. LAN technologies such as Ethernet, high speed Ethernet, and token ring have been adapted to use switches. ATM, which may operate through switches, works in either LAN or WAN environments. As switching is implemented in LAN environments, LAN connections have moved from shared access transport (SAT) sharing of media to connecting directly to switch ports. The LAN framing remains unchanged, but data flows attempt to pass or "cut-through" the switch. Cut-through avoids completely storing the frame before forwarding it, passing through the bits as soon as the destination port is known. In the cut-through mode, the LAN switch analyzes the address information contained in a frame header, and immediately begins transferring data received from one LAN segment to the destination LAN segment as determined by the address information. Adaptive cut-through is a variation which seeks to avoid wasting frames if the destination port is already busy by storing the frame in the switch until the destination is available. The problem with cut-through mode is that frames containing erroneous data are transferred from one LAN segment to another LAN segment, and upon reception by a node in a destination LAN segment, the data frame is discarded. By transferring a frame containing erroneous data, bandwidth has been wasted in the LAN switch, the destination LAN segment, and the data processing system connected to the destination node.
The need for high performance network devices continues to increase. The current trend in network implementation is to use both routing and switching together at a network node. Products are being developed which combine routers--especially IP routers--with switches. This need for high performance devices is driving network product designers to support more complex functions at the hardware level, including frame processing.
In current designs where data link layer (layer 2 of the Open Systems Interconnection reference model) frame forwarding function (i.e., switching) is provided, cut-through support is a relatively trivial function to perform since typically all ports of such a device run at the same transmission speed. When supporting network layer (layer 3 of the Open Systems Interconnection reference model) frame forwarding function (i.e., routing), cut-through support is no longer trivial since this type of device can support ports having a variety of transmission speeds. In this case, it is not always true that a network device would need to support only cut-through functions or only store-and-forward functions. There are cases when both functions must be supported by the same device simultaneously. In general, a device can support cut-through functions only if the receiving port of the device is at least as fast as the transmitting port. When the transmitting port of the device is faster than the receiving port, frames must be processed using store-and-forward functions to prevent the transmitting port from getting ahead of the receiving port and attempting to transmit parts of a frame that have not been received yet.
Therefore, there is a need for a network device having a combination of transmit and receive ports with varying speeds to be able to support a combination of cut-through and store-and-forward functions simultaneously. Frames that are received on ports at least as fast as those they will be transmitted on can use cut-through functions. For combination of receive and transmit ports where the opposite is true, the device must use store-and-forward functions to forward frames.